Thursday 19 March 2015

ERP versus SCM

supply chain management (SCM) is. Traditional SCM used the telephone, fax and regular mail to keep contact between suppliers and customers. It involved lots of time and costs. With the advent of computer technologies support for supply chain relationship became Electronic Data Interchange (EDI) systems. But EDI is an inter-organisational process, so business partnerships have been shown to be very important in the adoption and use of EDI.

Supply Chain Management (SCM) in today's Internet environment, especially the e-business is important to create significant competition advantages to firms and business partners worldwide. Since the objectives and goals are essential factors in the use of supply chain management in the e-business.

ERP being a business tool that manages day-to-day business process and is usually comprised of several modules such as financial module, distribution module, production module and supply chain management module as well as many other modules. Each of these modules share information that is housed within the database structures on which the ERP system was coded. ERP helps to break down barriers between departments within a company.

At a broader context, you must understand that ERP is an integrated system which holds many modules and SCM could be considered as one of the modules.

Enterprise resource planning

has a long history of expansion with additional modules added to bring more of the company's operations and interests into the integrated application suite. Within each functional area as well, expansion of capabilities and functions are a continuing theme. Even the earliest MRP II -- the previous acronym for what is now known as ERP -- systems had customer order handling capabilities, and many have grown to become full-function customer relationship management (CRM) -- the comprehensive repository for all kinds of data supporting the customer relationship.

New applications and new functionality tend to emerge from independent "specialist" developers not associated with the known ERP suppliers. Sometime these niche applications establish a new capability that is well accepted by the market and the ERP suppliers then add similar capabilities to their product suites. Generally, however, the ERP suite capabilities are not as deep or functionally complete as the so-called "point solutions" developed and maintained by the specialist developers.

ERP developers are usually unable to keep up with the additional functions continually added by leading point solution suppliers. And this is how is has been with the SCM software applications. Focused specialists created the category and remain ahead of the ERP suite suppliers even as they have created their own SCM suites.

The need for SCM systems


Companies with existing ERP installed -- and needing the deeper functionality of SCM systems -- may find an SCM product that has built-in or available interfaces to their ERP software. That's especially true if the ERP is one of the top market players -- SAP or Oracle, for example. Alternatively, there may be implementation and support partners associated with the SCM supplier that have pre-built interfaces or experience developing the interface for past client companies. The third alternative is to develop the interface on a one-off basis using middleware tools and exploiting Web services and service-oriented architecture to get the job done.

The short answer to interfacing ERP and SCM is this: Users can choose the point of integration since the key gateway applications -- CRM, distribution inventory or warehouse management -- may be available from either the ERP supplier or the SCM supplier. The choice will depend on the company's need for the deeper functionality available from the SCM supplier, with a more complicated interface or the fully integrated functionality of the ERP system application tied to the additional SCM functionality -- warehouse management, transportation management, supply chain planning and management. That makes it a much less complex integration.

Wednesday 18 March 2015

Software Development v/s Web Development

PCBizness Technosoft Pvt. Ltd.




Software development is the computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks involved in a software release life cycle and resulting in a software product. The term refers to a process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

Software can be developed for a variety of purposes, the three most common being to meet specific needs of a specific client/business (the case with custom software), to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task). Embedded software development, that is, the development of embedded software such as used for controlling consumer products, requires the development process to be integrated with the development of the controlled physical product. System software underlies applications and the programming process itself, and is often developed separately.

The need for better quality control of the software development process has given rise to the discipline of software engineering, which aims to apply the systematic approach exemplified in the engineering paradigm to the process of software development.

There are many approaches to software project management, known as software development life cycle models, methodologies, processes, or models. The waterfall model is a traditional version, contrasted with the more recent innovation of agile software development.

 Where as


Web development is a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network). Web development can range from developing the simplest static single page of plain text to the most complex web-based internet applications, electronic businesses, and social network services. A more comprehensive list of tasks to which web development commonly refers, may include web design, web content development, client liaison, client-side/server-side scripting, web server and network security configuration, and e-commerce development. Among web professionals, "web development" usually refers to the main non-design aspects of building web sites: writing markup and coding. Most recently Web development has come to mean the creation of content management systems or CMS. These CMS can be made from scratch, proprietary (such as Open Text) or open source (such as Drupal). In broad terms the CMS acts as middleware between the database and the user through the browser. A principle benefit of a CMS is that it allows non-technical people to make changes to their Web site without having technical knowledge.

For larger organizations and businesses, web development teams can consist of hundreds of people (web developers) and follow standard methods like Agile methodologies while developing websites.Smaller organizations may only require a single permanent or contracting developer, or secondary assignment to related job positions such as a graphic designer and/or information systems technician. Web development may be a collaborative effort between departments rather than the domain of a designated department.

If we  Want someone to build an interactive web site on top of someone else's existing framework? Hire a web developer. Need to build a new app framework from the ground up? Hire a software engineer. Want someone who can really quickly implement someone else's design in PHP? Web developer. Want someone who can carefully document a legacy system and design a replacement for it that is faster, cheaper, and easier to manage? Software engineer.

Conclusion:


A Software Engineer is:

someone who devises solutions to software problems
concerned with 'architecting' software on a given platform
responsible for the flow of data across the entire stack
someone who turns data into information
a programmer with greater software-architectural knowledge


A Web Developer is:

a specialist developer for the web.
a programmer with domain-specific knowledge of the web, web architectures and technologies.
responsible for the actual development/building of the entire stack, from HTML/CSS to database.


Read more »

Tuesday 10 March 2015

Software Development

PCBizness Technosoft Pvt. Ltd.



Software development engines come in various forms, spanning virtual prototypes, register-transfer level (RTL) simulation, acceleration/emulation, and FPGA-based prototyping. This article will outline when each is appropriate during the design cycle and explain their differing use cases.

Software development is all the rage these days. Do you have a great idea for the next must-have app? Millions of downloads of apps for phones and tablets on various operating systems (OSs) make software a hot market. As a result, tools for application and embedded software development are in high demand, and industries such as electronic design automation (EDA) are following all the attention software is getting with interest. In addition, EDA’s traditional main customer base, the semiconductor vendors, are trying to adapt to new challenges posed by their customers—the system houses—which eventually serve you and me, the consumers.

Over the last decade, a set of platforms that enable software development has emerged at the interface between EDA and embedded software development. Today, a design team has various options for how to develop software for the next cool gadget. But before we jump into the differences, let’s understand a bit more about what types of software can be found in today’s devices and what a typical development flow looks like.

The Hardware/Software Stack
Let’s look at a hardware/software stack for a consumer device like an Android phone (Fig. 1). At the lowest level of hardware, we find design and verification intellectual property (IP) assembled into sub-systems. In a phone, you will find various processors including application processors and video and audio engines, as well as baseband processors dealing with the wireless network.


1. Shown is an example of a hardware stack (at left) and software stack (at right) for a consumer device.

We must cover both control and signal processing, so designers typically turn to control processors such as ARM cores and digital signal processing (DSP) engines, which all must be programmed with software. On the hardware side, we integrate the subsystems into systems-on-a-chip (SoCs), which are in turn integrated into the actual printed-circuit board (PCB) and then into the phone.

The software stack looks just as complex as the hardware stack. At the highest level, end users are exposed to the applications that make our life easier, from Facebook to Netflix to productivity applications. These apps run on OSs, which may or may not be real-time-capable, and are enabled by complex middleware.

For example, the app that guided me to work this morning to avoid traffic did not have to implement location services by itself, but instead used pre-existing services for GPS. The same is true for most aspects of consumer products. In a phone, the middleware would include services like location, notification, activity, resource, and content management, all of which can be used by the apps we users see.

Operating Systems
Underneath the middleware we find the actual OS (iOS, Android, or others), including its services for networking, Web, audio, and video media. Combined with the OS, drivers (such as USB, keyboard, Wi-Fi, audio, and video drivers) connect the actual hardware to the device. The difference between the various layers lies in how and by whom they are provided.

In today’s world, many drivers are expected to come from the IP providers with the hardware IP they license. If the hardware IP provider does not make them available, or if the hardware is not licensed and developed in house, then a software team close to the hardware team will develop the drivers. The apps are developed by system houses and independent end-users. My iPhone, for example, has base applications developed by Apple plus applications developed independently.

OSs and middleware are typically licensed distributions. Not too long ago the commercial market for mobile OSs was quite large—remember Symbian and Microsoft CE? Embedded Linux and Android have changed the landscape so OSs are still licensed. But with the exception of Windows Mobile 7, the commercial mobile OSs are extinct, having been replaced by in-system-house OSs such as iOS, Blackberry OS, or various distributions of Android. The systems houses then customize these OSs, as with HTC’s Android phones with Sense technology.

The Project Flow
Now that we’ve looked at the different types of software to be developed, let’s analyze a project flow representative of consumer products. We may compare the various hardware/software development efforts during a project and the availability of different software development engines (Fig. 2).


2. Shown is a comparison of the various hardware/software development efforts during a project and the availability of different software development engines. (courtesy of IBS and Cadence)

The vertical axis shows the relative effort in human weeks, normalized to the average total of the projects analyzed. The horizontal axis shows the elapsed time per task and is normalized to the average time it takes to get from RTL to tapeout, which was 62 weeks across the projects analyzed. (For more information on the data, see “Improving Software Development and Verification Productivity Using Intellectual Property (IP) Based System Prototyping.”)

For instance, the total software development effort is about 45% of the project effort (measured in human weeks), as shown on the vertical axis. Verifying the RTL takes 20% of the overall hardware/software project effort and takes about 55% of the elapsed time from RTL to tapeout as indicated on the horizontal axis.

We may also examine the points at which the different software development engines become available (Fig. 2, at bottom). These engines are defined as follows:

Virtual prototypes are transaction-level representations of the hardware, able to execute the same code that will be loaded on the actual hardware, and often executing at well above 20 MIPS on x86-based hosts running Windows or Linux. To the software developer, virtual prototypes look just like the hardware because the registers are represented correctly, while functionality is accurate but abstracted. (For example, processor pipelines and bus arbitrations are not represented with full accuracy.)
RTL simulation executes the same hardware representation that is later fed into logic synthesis and implementation. This is the main vehicle for hardware verification and it executes in the Hertz range, but it is fully accurate as the RTL becomes the golden model for implementation, allowing detailed debug.
Acceleration/emulation executes parts of the design using specialized hardware—verification computing platforms—into which the RTL is mapped automatically and for which the hardware debug is as capable as in RTL simulation. Interfaces to the outside world (Ethernet, USB, and so on) can be made using rate adapters. In acceleration, part of the design (often the testbench) resides in the host while the verification computing platform executes the design under development. As indicated by the name, the primary use case is acceleration of simulation. In-circuit emulation takes the full design including testbenches and maps it into the verification computing platform, allowing much higher speed and enabling hardware/software development, ranging all the way up into the megahertz range.
FPGA-based prototyping uses an array of FPGAs into which the design is mapped directly. Due to the need to partition the design, re-map it to a different implementation technology, and re-verify that the result is still exactly what the incoming RTL represented, the bring-up of an FPGA-based prototype can be cumbersome and take months (as opposed to hours or minutes in emulation) and debug is mostly an offline process. In exchange, speeds will go into the tens of megahertz range, making software development a realistic use case.
Virtual prototypes that use transaction-level models (TLMs) can be available earliest in the design flow, especially for new designs (Fig. 2, again). Compared to RTL development and verification, development of blocks at the TLM level takes less effort because less detail is represented, resulting in less accurate models. Designs at RTL become executable in simulation first. Once RTL is reasonably stable, subsystems or full SoCs can be brought up in emulation or acceleration engines. Very stable RTL can be brought up in FPGA-based prototyping as well. Finally, once the first silicon samples are available, prototype boards may become available for software development.

The Project Timeline
Now we will assume a complex project spanning 15 months from RTL to tapeout and requiring another three months for silicon availability. Virtual prototypes can be available from 12 to 15 months before there is silicon. The elapsed time for development and verification of RTL would be about 10 months, so emulation and acceleration can become available from six to nine months before silicon, and FPGA prototypes can become available from three to six months before silicon. This clearly illustrates that the time of availability of the various software development engines is very different over the course of the design cycle.

The Continuum Of Engines
However, time of availability is not the only issue. As we dig deeper into the design team’s requirements, it becomes clear that there is no “one-size-fits-all” solution. A continuum of engines is needed. Let’s look at the requirements in more detail.

For application software development, designers care most about speed, debug, and early access. When development must become more hardware-aware, hardware accuracy becomes more important. For new blocks and IP validation, accuracy of hardware as well as hardware debug and turnaround time is crucial. Later, during hardware development, subsystems typically contain software and therefore need software debug capabilities. Finally, hardware/software validation requires enough speed to run a sufficient number of tests to verify functionality.

The bottom line: No engine covers all of these requirements and addresses all the care-abouts. Hence, software development platforms must operate in a connected flow to provide a smooth path from concept to product.



Designer Requirements
Let’s look at a graphical summary of the different user requirements in a flow from concept to product (Fig. 3). Today, we still develop most software on actual hardware once it is available. Real hardware executes at the intended speed, which is great, but debug is not so great because it is hard to look into the hardware. Most importantly, this type of software development becomes available at the latest possible point in time when changes in the hardware require a redesign.


3. This diagram summarizes the different user requirements in a flow from concept to product.

In contrast, at the early end of the design spectrum, virtual prototyping allows software development at the earliest point. Software debugging is easier and faster, but hardware accuracy and detailed debugging are impractical, making hardware verification impossible.

Once RTL is available, turnaround time and hardware debugging in RTL simulation is quick and accurate, given that RTL is today’s golden reference for functionality. But lack of speed makes software development very impractical for most of the types of software in RTL simulation.

As a result, for hardware, software verification engineers want to use emulation and acceleration platforms. These tools provide more speed, definitely enough for subsystems. In addition, the software debug now becomes more practical even though it’s later in the flow than RTL simulation. The speed combines with high hardware accuracy and good turnaround times, meaning it takes less time to get a new design into emulation and acceleration engines.

In addressing the need for hardware/software validation, even more speed is required to run more software for a longer time. This is where FPGA-based prototyping platforms prove useful, enabling even more speed and making software development and validation even more productive. However, debug and turnaround time are not as short as they are with emulators.

When To Use Which Engine? 
We have only scratched the surface of the differences between software development platforms and have assumed the user is involved in software development. With perhaps the exception of virtual prototypes, which are mostly focused on software developers, none of the engines mentioned here is exclusive to software development.

RTL simulation’s primary intent is hardware verification, and extending its use to hardware/software co-verification is a more limited use model due to the inherent speed limitations. Emulation is used for in-circuit execution, power analysis, hardware/software verification, and connections to the real world. Finally, FPGA-based prototyping serves for software development, regression verification, and in-system validation.

There are fundamental differences between the different execution vehicles with respect to time of availability during a project, software debug, execution speed, hardware accuracy, and debug and turnaround time to bring up a design. In an ideal world, design teams would like to see a continuum of connected engines, allowing them to exploit the given advantages of each engine.

Going forward, hybrid use models will become more and more important. For example, when a part of the design is stable (as in cases of IP reuse), then a hybrid of emulation and FPGA prototyping has the advantage of keeping the still-changing parts in the emulator while the fixed pieces of the design are in the FPGA prototype, executing at a higher speed.

Similarly, a combination of emulation and virtual prototyping allows the optimized execution of inherently parallel hardware like a graphics accelerator or a video engine in the emulator, while software executes on fast just-in-time compiled processor models on a host processor, running faster than would be possible in an emulator.



Monday 9 March 2015

Software Development Vs. Software Testing


PCBizness Technosoft Pvt. Ltd.


Software testing: 

Software testing is process used to identify the correctness completeness and quality of the developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before product released to the end users. In simple words software testing is an activity to check whether actual results match the expected results and to ensure that software system is defect free. Software testing is more than just error detection, Testing software is operating the software under controlled conditions, to verify that it behaves as specified, detect errors, and validate that what has been specified is what the user actually wanted. Actually testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item.

Software development: 

Software development used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process.  Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products Software Developer has to deal with all actions from the initial design up to the final testing of software.

Difference: 

The process or phase of creating software is called software development, once the software has been created and ready to provide for end users, we test the software with the requirements.  Software testing is an execution of a program with the intention of finding bug.

Development is writing the code, testing is finding out whether or not the code runs the way you expect it to. Software testing is a scrutiny performed to provide information about the quality of a product or software under test to the concerned clients. The trained professionals who perform these testing jobs are called software testers. Software testing includes many different techniques and is not only limited to execution of programs to find errors or software bugs. Software development (also known as application development, software design, designing software, software application development, enterprise application development, or platform development) is the development of a software product.

Software tester works with the new software and help in repairing the errors occurred in it whereas Software developers are the professionals who develop the new software products depending on the client requirements. Software developers’ responsibilities also include broader aspects in development of software products. Software development comes with developer, software publisher, programmer and system development life cycle. Software testing is done by software testers, manager, test lead, test designer, tester, automation developer, and test administrator.

Difference Based on careers.......


Understanding The Indian IT Industry :

The Indian IT industry is mostly services based industry which relies mostly on two types of jobs : software development and software testing (QA). There are other streams too, but those are out of the scope of this discussion. We'll only focus on testing vs.software  development. 

Typically most big IT industries will take up projects from overseas clients and have engineers work on them. This leads to two career paths - Software Testing & Software Development. Overall - the software development teams are responsible for 'coding' and software testing teams are responsible for making sure that everything adheres to the specifications of the software being developed.

Roles Played By Software Developers Vs. Software Testers :

Typically there would be 'two' teams working in sync on a project because both software development and testing cannot be separated. Every written code must be checked for quality and without any team not existing - it'd be impossible to create the final software. The point I'm driving home is that both software development and testing teams are equally important. It's a myth that software 'testing' is kind of a 'lower' job as compared to software development.

When any project begins - both software development and testing teams get involved from day 1. While the actual job of software developers begins much later, software testing teams usually begins right at the time of verifying the specification documents and continues throughout the life cycle of the project. It'd not be wrong to say that software testing teams often have a better knowledge of the overall functioning of the software systems they are working on.

Software development, is one of the most crucial parts because without it, nothing gets 'developed'. Project manager or team lead will assign specific modules to you which you will have to code according to the specifications finalised by the software testing & business development teams. Every module developed by the developers is checked by the testing team and approved.

Skill Set Requirements: 

For Developers: The developer skill set will be determined by the nature of the project and the technology stack decided by the software architects (much senior position in the organisation). If the architects decide that a combo of Java, C, Ruby, Python would be used in the project then accordingly developers will be selected who are trained on these technologies.

For Test Engineers: They require entirely different skill set which could be a mix of Java, C, Ruby, Python along with software manual and automation tools along with scripting languages. There are several automation tools that require programming knowledge. It's a myth that software testing engineers do not write code. Given the complexity of the project a software testing engineer might end up writing more complex code than his developer counterpart. The point to be understood is that - both development and testing jobs require you to have programming knowledge.

Career Growth: 

Software testing and software development engineers have unique growth paths with similarities. Software developers may get promoted to module lead, team lead, project lead, project manager and so on depending on the company's hierarchy.

A software testing engineer will have a similar path where he/she will become team lead, project lead, project manager, test architect etc. It's a myth that there are no or little growth opportunities in software testing career.

Salaries Offered To Testing Engineers Vs. Developers:

It's a fact that few companies offer a bit lesser salary to testing engineers as compared to developers at the initial phase of career. But I've not seen this remaining a problem for longer time in career. In fact, a qualified automation engineer can draw much more salary than a developer with similar work experience (years).

Ultimately You Will Become Managers

I'd say 'unfortunately' because every promotion will take you away from your technical expertise. Ultimately you will become managers and will mostly use Microsoft Outlook, Power Point and Excel Sheets no matter which stream (development or testing) you belonged to. At that stage, your salaries will be the same as what the industry offers and your testing stream won't really matter.

There are few companies that allow you to stick to your roots through caries technical and management career paths. That however is out of scope of this post. You may ask specific questions about this, if you have any.

Should You Choose Software Development Or Software Testing?

If you are 'passionate' about coding [check if you've contributed to open source projects, developed a software in your part time just because it's fun, have you cracked complex coding problems just for fun?] then opt for software development.

If you aren't passionate about coding and haven't written a single line of code out of interest - any stream is okay for you. You'll be happy in any career stream - be it software development or testing.

Bottom Line: Don't form opinions or take decisions based on what people say. Most people are not at all exposed to the IT industry or just one of testing or software development. Do your own research, gather information on your own from well informed people (CE is an excellent place to do that). If you have questions, post them below. We've several software testing engineers and software developers who will be happy to answer your questions. If you have general comments, they are welcome too.

Thursday 5 February 2015

Web Design and Tableless Web Design

PCBizness Technosoft Pvt. Ltd.

Web Design and Tableless Web Design

Web design encompasses many different skills and disciplines in the production and maintenance of websites. The different areas of web design include web graphic design; interface design; authoring, including standardised code and proprietary software; user experience design; and search engine optimization. Often many individuals will work in teams covering different aspects of the design process, although some designers will cover them all. The term web design is normally used to describe the design process relating to the front-end (client side) design of a website including writing mark up. Web design partially overlaps web engineering in the broader scope of web development. Web designers are expected to have an awareness of usability and if their role involves creating mark up then they are also expected to be up to date with web accessibility guidelines.

Web designers use a variety of different tools depending on what part of the production process they are involved in. These tools are updated over time by newer standards and software but the principles behind them remain the same. Web graphic designers use vector and raster graphics packages to create web-formatted imagery or design prototypes. Technologies used to create websites include standardised mark-up, which can be hand-coded or generated by WYSIWYG editing software. There is also proprietary software based on plug-ins that bypasses the client’s browser versions. These are often WYSIWYG but with the option of using the software’s scripting language. Search engine optimisation tools may be used to check search engine ranking and suggest improvements.

Other tools web designers might use include mark up validators and other testing tools for usability and accessibility to ensure their web sites meet web accessibility guidelines

Web development tools allow web developers to test and debug their code. They are different from website builders and IDEs in that they do not assist in the direct creation of a webpage, rather they are tools used for testing the user facing interface of a website or web application.

Web development tools come as browser add-ons or built in features in web browsers. The most popular web browsers today like, Google Chrome, Firefox, Opera, Internet Explorer, and Safari have built in tools to help web developers, and many additional add-ons can be found in their respective plugin download centers.

Web development tools allow developers to work with a variety of web technologies, including HTML, CSS, the DOM, JavaScript, and other components that are handled by the web browser. Due to the increasing demand from web browsers to do more popular web browsers have included more features geared for developers.

Tableless Web Design

Tableless web design (or tableless web layout) is a web design philosophy eschewing the use of HTML tables for page layout control purposes. Instead of HTML tables, style sheet languages such as Cascading Style Sheets (CSS) are used to arrange elements and text on a web page.

CSS was introduced in December 1996 by the W3C to improve web accessibility and to make HTML code purely semantic rather than presentational. Around the same time, in the late 1990s, as the dot-com boom led to a rapid growth in the "new media" of web page creation and design, there began a trend of using HTML tables, and their rows, columns and cells, to control the layout of whole web pages. This was due to several reasons:

the limitations at the time of CSS support in browsers;
the new web designers' lack of familiarity with CSS;
the lack of knowledge of, or concern for the reasons (including HTML semantics and web accessibility) to use CSS instead of what was perceived as an easier way to quickly achieve the intended layouts, and
a new breed of WYSIWYG web design tools that encouraged this practice.
The advantages of restricting the use of HTML tables to their intended and semantic purpose include improved accessibility of the information to a wider variety of users, using a wide variety of user agents. There are bandwidth savings as large numbers of semantically meaningless <table>, <tr> and <td> tags are removed from dozens of pages leaving fewer, but more meaningful headings, paragraphs and lists. Layout instructions are transferred into site-wide CSS stylesheets, which can be downloaded once and cached for reuse while each visitor navigates the site. Sites may become more maintainable as the whole site can be restyled or re-branded in a single pass merely by altering the mark-up of the specific CSS, affecting every page which relies on that stylesheet. New HTML content can be added in such a way that consistent layout rules are immediately applied to it by the existing CSS without any further effort.

Some developers are now afraid to introduce a simple HTML table even where it makes good sense, some erring by the overuse of span and div elements, perhaps even with table-like rules applied to them using CSS.

Advantages of Tableless Web Design


Accessibility
Because of the Internet's rapid growth, expanding disability discrimination legislation, and the increasing use of mobile phones and PDAs, it is necessary for Web content to be made accessible to users operating a wide variety of devices. Tableless Web design considerably improves Web accessibility in this respect.

Screen readers and braille devices have fewer problems with tableless designs because they follow a logical structure. The same is true for search engine Web crawlers, the software agents that most web site publishers hope will find their pages, classify them accurately and so enable potential users to find them easily in appropriate searches.

As a result of the separation of design (CSS) and structure (HTML), it is also possible to provide different layouts for different devices, e.g. handhelds, mobile phones, etc. It is also possible to specify a different style sheet for print, e.g. to hide or modify the appearance of advertisements or navigation elements that are irrelevant and a nuisance in the printable version of the page.

The W3C's Web Content Accessibility Guidelines' guideline no. 3 states "use markup and style sheets and do so properly." The guideline's checkpoint 3.3, a priority-2 checkpoint, says "use style sheets to control layout and presentation."

Bandwidth savings
Tableless design produces web pages with fewer HTML tags used purely to position content. This normally means that the pages themselves become smaller to download. The philosophy implies that all the instructions regarding layout and positioning be moved into external style sheets. According to the basic capabilities of HTTP, as these rarely change and they apply in common to many web pages, they will be cached and reused after the first download. This further reduces bandwidth and download times across the site.

Maintainability
Maintaining a website may require frequent changes, both small and large, to the visual style of a website, depending on the purpose of the site. Under table-based layout, the layout is part of the HTML itself. As such, without the aid of template-based visual editors such as HTML editors, changing the positional layout of elements on a whole site may require a great deal of effort, depending on the amount of repetitive changes required. Even employing sed or similar global find-and-replace utilities cannot alleviate the problem entirely.

In tableless layout using CSS, the layout information may reside in a CSS document. Because the layout information may be centralized, it is possible that these changes can be made quickly and globally by default. The HTML files themselves may not need to be adjusted when making layout changes.

Also, because the layout information may be stored externally to the HTML, it may be quite easy to add new content in a tableless design, whether modifying an existing page or adding a new page. By contrast, without such a design, the layout for each page may require a more time-consuming manual changing of each instance or use of global find-and-replace utilities. However site owners often want particular pages to be different from others on the site either for a short period or long term. This will often necessitate a separate style sheet to be developed for that page.

On the other hand, due to browser inconsistency and a particular web designer's implementation of tableless design, it may not be clear at first glance exactly how a tableless web page is constructed. While it is convenient to have markup language residing in a single CSS file, it can split layout logic unnecessarily. Browser inconsistencies can increase the risk of web pages failing to render properly which increases the need for maintainability.

The use of tables
On the one hand, because of the term "tableless web design", some have interpreted this design strategy as an unconditional repudiation of all tables in web design. This has caused some to avoid tables even when tables are appropriate. Using divisions to simulate a table for the display of tabular data is as much a design flaw as using tables to control graphic and page layout. Some sources clarify this distinction by using the more specific term "tableless web layout".

On the other hand, using tables in web design, although most common, does not necessarily equate to using the table element defined in HTML 4.0. CSS also specifies a "table model" which allows the layout of tables to be applied to any element using the "display: table" CSS declaration.One reason this technique is sometimes overlooked is the lack of support for the CSS table model in Internet Explorer versions earlier than 8. Internet Explorer 8 is the first version of the browser to support the CSS table model.

Tuesday 3 February 2015

Domain Name , Domain Name Registrar, Domain Name Resigtry, Fully Qualified Domain Name

PCBizness Technosoft Pvt. Ltd.

Domain Name

A domain name is an identification string that defines a realm of administrative autonomy, authority or control within the Internet. Domain names are formed by the rules and procedures of the Domain Name System (DNS). Any name registered in the DNS is a domain name.

Domain names are used in various networking contexts and application-specific naming and addressing purposes. In general, a domain name represents an Internet Protocol (IP) resource, such as a personal computer used to access the Internet, a server computer hosting a website, or the website itself or any other service communicated via the Internet. In 2014, the number of active domains reached 271 million.

Domain names are organized in subordinate levels (subdomains) of the DNS root domain, which is nameless. The first-level set of domain names are the top-level domains (TLDs), including the generic top-level domains (gTLDs), such as the prominent domains com, info, net, edu, and org, and the country code top-level domains (ccTLDs). Below these top-level domains in the DNS hierarchy are the second-level and third-level domain names that are typically open for reservation by end-users who wish to connect local area networks to the Internet, create other publicly accessible Internet resources or run website. The registration of these domain names is usually administered by domain name registrars who sell their services to the public.

A fully qualified domain name (FQDN) is a domain name that is completely specified in the hierarchy of the DNS, having no parts omitted.

Labels in the Domain Name System are case-insensitive, and may therefore be written in any desired capitalization method, but most commonly domain names are written in lowercase in technical contexts.

Domain Name Registrar

A domain name registrar is an organization or commercial entity that manages the reservation of Internet domain names. A domain name registrar must be accredited by a generic top-level domain (gTLD) registry and/or a country code top-level domain (ccTLD) registry. The management is done in accordance with the guidelines of the designated domain name registries.

Domain Name Registry

A domain name registry is a database of all domain names and the associated registrant information in the top level domains of the Domain Name System (DNS) of the Internet that allow third party entities to request administrative control of a domain name. Most registries operate on the top-level and second-level of the DNS.

A registry operator, sometimes called a network information center (NIC) maintains all administrative data of the domain and generates a zone file which contains the addresses of the name servers for each domain. Each registry is an organization that manages the registration of domain names within the domains for which it is responsible, controls the policies of domain name allocation, and technically operates its domain. It may also fulfill the function of a domain name registrar, or may delegate that function to other entities.

Domain names are managed under a hierarchy headed by the Internet Assigned Numbers Authority (IANA), which manages the top of the DNS tree by administrating the data in
the root nameservers.

IANA also operates the int registry for intergovernmental organizations, the arpa zone for protocol administration purposes, and other critical zones such as root-servers.net.

IANA delegates all other domain name authority to other domain name registries.

Country code top-level domains (ccTLD) are delegated by IANA to national registries such as DENIC in Germany and Nominet in the United Kingdom.

Fully Qualified Domain Name

A fully qualified domain name (FQDN), sometimes also referred to as an absolute domain name, is a domain name that specifies its exact location in the tree hierarchy of the Domain Name System (DNS). It specifies all domain levels, including the top-level domain and the root zone. A fully qualified domain name is distinguished by its lack of ambiguity: it can be interpreted only one way.

The DNS root domain is unnamed, which is expressed by the empty label, resulting in a fully qualified domain name ending with the dot character.

The need for fully qualified domain names first arose out of a requirement for uniformity as the Internet was quickly growing in size in the 1980s.

Thursday 29 January 2015

Enterprise Resource Planing(ERP) Benefits and Solutions


PCBizness Technosoft Pvt. Ltd.


A true Enterprise Resource Planning (ERP) system integrates both internal and external information flows used by the organization within a single, comprehensive solution. An ERP solution incorporates the practical systems used by organizations to manage the basic commercial functions of their business, such as: planning, inventory/materials management, purchasing, manufacturing, finance, accounting, human resources, marketing and sales, services etc. The objective of the ERP solution is to drive the flow of information between all internal business functions while managing connections, or "touchpoints," to outside stakeholders.
ERP solutions run on a variety of computer hardware and network configurations, including "on premises" (i.e. client/server) or hosted (i.e. "cloud-based" or Software as a Service).
Regardless of the configuration, typically ERP solutions use a common database to hold information from the various business functions that's accessible in some form or another by various users. The use of an integrated database to manage the solution's multi-module application framework within a common information system is one of the primary ERP benefits of this kind of system over "point solutions."
Unlike point solutions (historically used by small to midsize businesses) that rely on multiple (sometimes duplicating) databases which strain IT resources, ERP solutions standardize the use of one application to run an entire business. This not only increases efficiencies, but also decreases the overall total cost of ownership (TCO), thereby reducing operational costs and improving the company's profitability.

Scalability: An ERP system is easily scalable. That means adding new functionality to the system as the business needs change is easy. This could mean easy management of new processes, departments, and more.

Improved reporting: Much of the inefficiency in operational work stems from improper reporting. With an ERP system, this possibility is eliminated as reporting follows an automated template system, allowing various departments to access informat

ion seamlessly.

Data quality: As compared with manual record-keeping or other traditional approaches, an ERP system improves data quality by improving the underlying processes. As a result, better business decisions can be reached.

Lower cost of operations: An ERP system introduces fundamental innovations in managing resources, which eliminates delays and thus reduces cost of operations. For instance, use of mobility allows real-time collection of data, which is indispensable to lowering costs.

Better CRM: A direct benefit of using a good ERP system is improved customer relations as a result of better business processes.

Business analytics: Having high-quality data allows businesses to use the power of intelligent analytics tools to arrive at better business decisions. In fact, many good ERP systems have built-in analytics functionality to allow easier data analysis.

Improved data access: Controlling data access properly is always a challenge in organizations. With an ERP system, this challenge is overcome with the use of advanced user management and access control.

Better supply chain: Having the right ERP system in place means improved procurement, inventory, demand forecasting, etc., essentially improving the entire supply chain and making it more responsive.

Regulatory compliance: Having the system in control means organizations can better comply with regulations. Further, the most important and recurring regulatory requirements can be built right into the system.

Reduced complexity: Perhaps the most elegant argument in the favor of ERP systems is that they reduce the complexity of a business and introduce a neatly designed system of workflows. This makes the entire human resource chain more efficient.

There are many more benefits of an ERP system, but these are the chief ones. Needless to say, a good ERP system is indispensable in the modern economic scenario.

Additional ERP Benefits:

Tighter controls for financial compliance declaration (e.g. Sarbanes-Oxley and Basel II) as well as other forms of compliance reporting.
The single data source for product and services information - such as information related to suppliers, vendors, customer orders and the products themselves - drive rapid product development and launch cycles which increases a company's overall market share.
Increased access to valuable corporate data delivers a clear, global view of the business that drives continuous improvement strategies and establishes common performance metrics and measures to gauge the health of the business.
Effectively managing projects holistically fosters decision making at critical levels in the development and/or manufacturing process.
Support for streamlined sourcing and procurement processes drive alignment to customer demands, and also deliver a centralized buying model to reduce unauthorized and unnecessary expenses.
Providing sales and operations planning with access to critical information fosters "closed loop" processes that ensures the business does not overpromise and/or underdeliver to customers.
Automating business processes such as invoicing and sales and purchase orders within one systems improves forecasting accuracy and reduces inefficiencies.
Using a single base of information for billing and other customer interactions improves service levels and increases customer retention.

Reaping ERP Benefits: Implementing the Right Solution

ERP solutions are continually refined and updated. With the myriad of different systems that are available today, it's critical for organizations who are considering an ERP system for the first time or migrating to an alternative ERP solution to partner with a company that first assesses their needs and helps them identify the system that will support their business objectives. Equally, if not most important, is to work with a company that defines and integrates an ERP solution that seamlessly supports their business processes.
Since ERP solutions are the operational backbone of a growing or established organization, it's necessary to partner with a company that understands your business, can improve the quality and efficiency of your organization, and delivers a solution that will ultimately save time and expense.  

Vertical Solutions: Retail Supplier Solutions (RSS)

Green Beacon’s “Retail Supplier Solutions” module makes Microsoft Dynamics® AX the premiere ERP solution catered specifically to Retail Suppliers.

RSS enables your company to streamline the supplier-retailer relationship with the use of one seamless platform — all powered by Microsoft Dynamics® AX.

Making use of Big Data, our program planning and execution enhancement system provides the ideal launchpad for harnessing customer centric capabilities with efficient automation processes and optimization.

As a Microsoft Dynamics® Gold Certified Partner, we provide a fully integrated set of tools such as shelf-aware, pre-season and in-season demand planning, data visualization, supply chain execution and remittance management.

Retailers are asking for more from suppliers, Green Beacon is providing the tools to meet and exceed those demands.