180 likes | 299 Vues
This comprehensive overview by Dr. V. T. Raja at Oregon State University explores current trends in software development, focusing on key areas such as Java, open source software, visual and markup languages, and object-oriented programming. The outline discusses middleware, enterprise resource planning (ERP), web services, and service-oriented architecture (SOA), emphasizing their impacts on application integration and communication between platforms. It also introduces concepts like encapsulation, inheritance, and the role of UML in modeling, alongside the pros and cons of middleware in software solutions.
E N D
Software – Part 3 V.T. Raja, Ph.D., Information Management College of Business Oregon State University
Outline Recent/Current Trends in Software • Java • Open Source Software • Visual and Markup Languages (e.g., Visual Basic, Visual C++, HTML) • Object Oriented Programming • Middleware • Enterprise Resource Planning (ERP) • Web Services and Service-Oriented Architecture (SOA) • Other Trends • Selecting Software
Object Oriented Programming Employee (Object/Class) Name (Variable) ID (Variable) Pay (Method/Procedure) Non-Salaried Employee (Subclass of employee) Name (Inherited variable) ID (Inherited variable) Hourly rate (variable) Pay (Method Adaptation/Override)
Object Oriented Programming • Encapsulation • The process of grouping variables, procedures and data into objects (Classes) is called encapsulation. • Inheritance • Child objects inherit from parent object • Reusability of code (advantage of OOP) • UML – Unified Modeling Language: • A language for modeling a complex object-oriented software system – think of it as a blueprint (for the entire system) that documents the objects, variables, and the relationship between different objects.
Distributed Computing Middleware db db db db Middleware • Software that makes it possible for systems on different platforms to communicate with each other. • Allows applications to talk to each other • Consistent Application Program Interface (API) • Code application to talk to middleware, not underlying resources • Upgrade/modify underlying resources without needing to modify applications
Middleware(Continued) • ORB architecture: ORB activate service locate service establish connection Remote Service Client communicate
Middleware(Continued) • File sharing using Napster: ORB activate service locate service establish connection Stored Files Request communicate
Some Benefits of Middleware • Anonymous interaction among applications • Integrate new client/server applications with existing legacy, mission-critical applications • Easier development environment • Reduce cost • Improve time-to-market of applications • Enables distributed data environment • Popularity of ERP
Some Disadvantages of Middleware • Rapidly changing technologies • Switching costs are high • Upgrade from previous “Middleware” solutions • Requires high technical expertise • Tend to outsource • Lengthy deployment time • Security
Web Services • Refers to a set of loosely coupled software components that exchange information with each other using standard Web communication standards and languages.
Web Services – Foundations • XML– eXtensible Markup Language • SOAP– Simple Object Access Protocol • WSDL– Web Services Description Language • UDDI– Universal Description, Discovery, and Integration • Ajax - Asynchronous JavaScript and XML
XML • XML is a language for representing contents (compare with HTML which is a language for representing formatting instructions). • XML developed by W3C in 1996 • HTML example: • <title>this is an example</title> • <b>this is in bold</b> • <i>this is in italics</i> • <b><i>this is in bold italics</i></b>
XML XML example: This is a person, whose first name is 'Joe,' and whose last name 'Smith.' This person is a teacher. • <person> <name> <first>Joe</first> <last>Smith</last> </name> <profession>teacher</profession> </person> • Can define your own tags. • Easier to transfer data between different systems – because it is text based content
SOAP; WSDL • Simple Object Access Protocol • A set of rules for exchanging XML-based messages over computer networks. • Web Services Description Language • Common framework for describing the tasks performed by a Web Service and the commands and data it will accept so that it can be used by other applications
UDDI; SOA • Universal Description, Discovery, and Integration • Enables a web service to be listed in a directory of Web services so that it can be easily located. • Service Oriented Architecture • Self-contained services that communicate with each other to create a working software application • Amazon’s customer interface, customer service interface, seller interface, billing, etc. integrated
Ajax - (Asynchronous JavaScript and XML) • Mistake in filling out a Web Order Form (Don’t have to start all over again) • Click the North arrow once, and don’t have to wait for new page to load • Software technique that prevents these inconveniences by allowing client and server to hold a conversation in the background, transferring your entries as they are made to the server without your awareness.
Other Trends • Integration of hardware, software and telecommunications • Examples: Car navigation systems Smart Cards • Software Outsourcing • Application Service Provider (ASP) Model • Server Virtualization
Selecting software for an organization Some factors to consider: • Business need satisfied? • Platform independence/compatibility • (Open Systems; middleware tools) • Open Source/Proprietary • Off-the-shelf/Custom software • ASP Model/Software Outsourcing • Availability of documentation support • Availability of maintenance/vendor support • Cost/Budget? • (Licensing, End-user Training, Maintenance/Upgrades) • Reliability and Security